package com.mmall.product.mapper;

import com.mmall.pojo.entity.ProductEntity;
import com.mmall.pojo.param.ProductPageParam;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * Created by Mybatis Generator 2019/04/25
 *
 * @author guigu
 */
@Mapper
public interface ProductMapper {

    /**
     * 选择插入
     *
     * @param record ProductEntity
     * @return int
     */
    int insertSelective(ProductEntity record);

    /**
     * 主键查询
     *
     * @param id 主键
     * @return ProductEntity
     */
    ProductEntity selectByPrimaryKey(Long id);

    /**
     * 选择更新
     *
     * @param record ProductEntity
     * @return int
     */
    int updateByPrimaryKeySelective(ProductEntity record);


    /**
     * 根据 分类 品牌 名称 查询 主要作为去重校验
     *
     * @param productEntity ProductEntity
     * @return ProductEntity
     */
    ProductEntity selectByCategoryIdAndBrandIdAndName(ProductEntity productEntity);

    /**
     * 分页计数
     *
     * @param productPageParam ProductPageParam
     * @return long
     */
    long selectCount(ProductPageParam productPageParam);

    /**
     * 分页查询
     *
     * @param productPageParam ProductPageParam
     * @return List<ProductEntity>
     */
    List<ProductEntity> selectPage(ProductPageParam productPageParam);

    /**
     * 删除商品
     *
     * @param id 商品id
     */
    void deleteByPrimaryKey(Long id);
}